'use client';

import * as React from 'react';

export interface useCopyToClipboardProps {
	timeout?: number;
}

export function useCopyToClipboard({
	timeout = 2000
}: useCopyToClipboardProps) {
	const [isCopied, setIsCopied] = React.useState<Boolean>(false);

	const copyToClipboard = (value: string) => {
		if (typeof window === 'undefined' || !navigator.clipboard?.writeText) {
			return;
		}

		if (!value) {
			return;
		}

		navigator.clipboard.writeText(value).then(() => {
			setIsCopied(true);

			setTimeout(() => {
				setIsCopied(false);
			}, timeout);
		});
	};

	return { isCopied, copyToClipboard };
}
